/*****************************************************************************
	SNEGA UTILITIES 0.7a
	Copyright (C) 2009, Xiaohan Tian (snega0223)
	
	http://code.google.com/p/snega-utilities/
	
	This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License(LGPL) as
	published by the Free Software Foundation, either version 3 of the 
	License, or(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU Lesser General Public License for more details.
	
	You should have received a copy of the GNU Lesser General Public License
	along with this program.  If not, see <http://www.gnu.org/licenses/>.
*****************************************************************************/

package org.sng.util.db;

import java.sql.SQLException;
import java.util.*;

import org.sng.util.slog.SLog;

public class DboPool {
	
	private static HashMap<String, GeneralOpForDatabase> m_pool = new HashMap<String, GeneralOpForDatabase>();
	
	public static void PushDbo(String id, GeneralOpForDatabase o) {
		DboPool.m_pool.put(id, o);
	}
	
	public static GeneralOpForDatabase PopDbo(String id) {
		return DboPool.m_pool.remove(id);
	}
	
	public static GeneralOpForDatabase GetDbo(String id) {
		GeneralOpForDatabase dbo = DboPool.m_pool.get(id);
		
		try {
			SLog.println("[ Current c3p0 pool: conn = " + dbo.GetC3P0Pool().getNumConnections() + " | busy = " + dbo.GetC3P0Pool().getNumBusyConnectionsDefaultUser() + " | idle = " + dbo.GetC3P0Pool().getNumIdleConnectionsDefaultUser() + " ]");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return dbo;
	}

}
